<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Comanda extends CI_Model {
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function criar($iIdUsuario, $sLogin){
		$sSql = "
			INSERT INTO
				tb_comanda (status_comanda, time_inicio_comanda, time_fim_comanda, tb_usuario_id_usuario, tb_usuario_login_usuario)
			VALUES (
				'aberta',
				NOW(),
				NULL,
				{$iIdUsuario},
				{$sLogin}
			)";
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function ler(){
		$sSql = "
			SELECT
				id_comanda,
				status_comanda,
				time_inicio_comanda,
				tb_usuario_login_usuario,
				SUM(preco_pedido) total
			FROM
				tb_comanda c
			LEFT JOIN
				tb_pedido p
			ON
				c.id_comanda = p.tb_comanda_id_comanda
			WHERE
				(status_comanda = 'Aberta' OR status_comanda = 'Fechando')
			AND
				status_pedido <> 'Cancelado'
			GROUP BY 
				tb_usuario_login_usuario
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->result_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function atualizar(){
	
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function deletar(){
	
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function total($sLogin){
		$sSql = "
			SELECT
				id_comanda,
				status_comanda,
				time_inicio_comanda,
				tb_usuario_login_usuario,
				SUM(preco_pedido) total
			FROM
				tb_comanda c
			LEFT JOIN
				tb_pedido p
			ON
				c.id_comanda = p.tb_comanda_id_comanda
			WHERE
				status_comanda = 'Aberta' AND
				tb_usuario_login_usuario = '{$sLogin}'	
		";
	
		$oResultado = $this->db->query($sSql);
		return $oResultado->row_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerByLogin($sLogin){
		
		$sSql = "
			SELECT
				*
			FROM
				tb_comanda
			WHERE
				tb_usuario_login_usuario = '{$sLogin}'
			AND
				status_comanda = 'Aberta'
		";
		$oResultado = $this->db->query($sSql);
		return $oResultado->row_array();
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerByIdFechando($iIdComanda){
	
		$sSql = "
			SELECT
				*
			FROM
				tb_comanda
			WHERE
				id_comanda = {$iIdComanda}
			AND
				status_comanda = 'Fechando'
		";	
		$oResultado = $this->db->query($sSql);
		if ($oResultado->num_rows() > 0) {
			return $oResultado->row_array();
		} else {
			return false;
		}
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function lerByIdAberta($iIdComanda){
	
		$sSql = "
			SELECT
				*
			FROM
				tb_comanda
			WHERE
				id_comanda = {$iIdComanda}
			AND
				status_comanda = 'Aberta'
		";
	
		$oResultado = $this->db->query($sSql);
		if ($oResultado->num_rows() > 0) {
			return $oResultado->row_array();
		} else {
			return false;
		}
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function fechando($iIdComanda){
		$sSql = "
			UPDATE
				tb_comanda
			SET
				status_comanda = 'Fechando'
			WHERE
				id_comanda = {$iIdComanda}
		";
		return $this->db->query($sSql);
	}
	
	/**
	 * @name
	 * @param
	 * @param
	 * @return
	 * @see
	 * @since
	 * @author
	 */
	public function fechar($iIdComanda){
		$sSql = "
			UPDATE
				tb_comanda
			SET
				status_comanda = 'Fechada',
				time_fim_comanda = CURRENT_TIMESTAMP
			WHERE
				id_comanda = {$iIdComanda}
		";
		
		return $this->db->query($sSql);
	}
}

/* End of file Comanda.php */